Sari la conținut

MATLAB Paralel

De la Wikipedia, enciclopedia liberă

MATLAB oferă o soluție pentru implementarea algoritmilor paraleli, și anume instrumentul pentru calcul paralel (Parallel Computing Toolbox TM). Este oferit suport pentru procesoare cu mai multe nuclee, unități de procesare grafică și clustere de calculatoare. De asemenea, se pot paraleliza algoritmi fără a fi nevoie de programare MPI sau CUDA.

Există 12 motoare de calcul MATLAB (începând cu versiunea R2011b) care fac posibilă rularea algoritmilor paraleli. Acestea pot rula și de pe un sistem de calcul multiprocesor local, cu o configurație de maxim 4 de astfel de motoare.

Paralelizarea simplă a algoritmilor

[modificare | modificare sursă]

Folosirea buclei parfor:

  parfor i=1:n
      task-uri
  end

Task-urile sunt distribuite automat către motoarele MATLAB. În cazul în care nici unul din aceste motoare nu este disponibil, atunci aplicația va rula în mod serial.

Avantajele folosirii uneltei de calcul paralel MATLAB sunt:

- folosirea algoritmilor paraleli impliciți - distribuirea automată către resursele disponibile - nu este nevoie de cod paralelizat - eficientizarea timpului de calcul prin folosirea resurselor disponibile (procesoare multinucleu și unități grafice de procesare) - nu mai este necesară rescrierea codului, acesta poate rula pe orice sistem de calcul, indiferent de configurație, MATLAB va aloca corect resursele și instrumentele necesare.

Un aspect foarte important la scrierea unei aplicații paralele în MATLAB pentru îmbunătățirea timpilor de calcul îl reprezintă folosirea variabilelor neindexate într-o bucla "parfor" (cum ar fi array-urile) - ca in orice algoritm de calcul paralel, este important ca orice iterație dintr-o buclă "parfor" să fie independentă de celelalte. Altfel, array-urile trebuie împărțite (tehnică numită "slicing" - "feliere").

Exemplu rulare MATLAB Paralel

  % Alocarea celor 8 unități centrale de prelucrare
  matlabpool 8
  % Apel funcții ce folosesc fire de execuție
  % ... 
  functieCalculParalel()
  %...
  % Dezalocarea unităților centrale de prelucrare
  matlabpool close

MathWorks:

Legături externe

[modificare | modificare sursă]